

<!DOCTYPE html>
<html lang="zh_CN" data-default-color-scheme=auto>



<head>
  <meta charset="UTF-8">
  <link rel="apple-touch-icon" sizes="76x76" href="/fx-blog/img/ChenCat.png">
  <link rel="icon" href="/fx-blog/img/ChenCat.png">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, shrink-to-fit=no">
  <meta http-equiv="x-ua-compatible" content="ie=edge">
  
  <meta name="theme-color" content="#2f4154">
  <meta name="author" content="Ray_Hughes">
  <meta name="keywords" content="">
  
    <meta name="description" content="一个流程式脚本控制地牢系统">
<meta property="og:type" content="article">
<meta property="og:title" content="RayDungeon - 流程式脚本控制地牢系统">
<meta property="og:url" content="https://ray_hughes.gitee.io/fx-blog/2023/08/24/RayDungeon/index.html">
<meta property="og:site_name" content="枫溪的山谷">
<meta property="og:description" content="一个流程式脚本控制地牢系统">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2023-08-23T21:36:05.000Z">
<meta property="article:modified_time" content="2023-08-23T07:58:13.123Z">
<meta property="article:author" content="Ray_Hughes">
<meta property="article:tag" content="加密">
<meta property="article:tag" content="Diss8c豆">
<meta name="twitter:card" content="summary_large_image">
  
  
  
  <title>RayDungeon - 流程式脚本控制地牢系统 - 枫溪的山谷</title>

  <link  rel="stylesheet" href="https://lib.baomitu.com/twitter-bootstrap/4.6.1/css/bootstrap.min.css" />



  <link  rel="stylesheet" href="https://lib.baomitu.com/github-markdown-css/4.0.0/github-markdown.min.css" />

  <link  rel="stylesheet" href="https://lib.baomitu.com/hint.css/2.7.0/hint.min.css" />

  <link  rel="stylesheet" href="https://lib.baomitu.com/fancybox/3.5.7/jquery.fancybox.min.css" />



<!-- 主题依赖的图标库，不要自行修改 -->
<!-- Do not modify the link that theme dependent icons -->

<link rel="stylesheet" href="//at.alicdn.com/t/font_1749284_hj8rtnfg7um.css">



<link rel="stylesheet" href="//at.alicdn.com/t/font_1736178_lbnruvf0jn.css">


<link  rel="stylesheet" href="/fx-blog/css/main.css" />


  <link id="highlight-css" rel="stylesheet" href="/fx-blog/css/highlight.css" />
  
    <link id="highlight-css-dark" rel="stylesheet" href="/fx-blog/css/highlight-dark.css" />
  




  <script id="fluid-configs">
    var Fluid = window.Fluid || {};
    Fluid.ctx = Object.assign({}, Fluid.ctx)
    var CONFIG = {"hostname":"ray_hughes.gitee.io","root":"/fx-blog/","version":"1.9.5-a","typing":{"enable":true,"typeSpeed":60,"cursorChar":"_","loop":false,"scope":[]},"anchorjs":{"enable":true,"element":"h1,h2,h3,h4,h5,h6","placement":"left","visible":"hover","icon":""},"progressbar":{"enable":true,"height_px":3,"color":"#29d","options":{"showSpinner":false,"trickleSpeed":100}},"code_language":{"enable":true,"default":"TEXT"},"copy_btn":true,"image_caption":{"enable":true},"image_zoom":{"enable":true,"img_url_replace":["",""]},"toc":{"enable":true,"placement":"right","headingSelector":"h1,h2,h3,h4,h5,h6","collapseDepth":0},"lazyload":{"enable":true,"loading_img":"/img/loading.gif","onlypost":false,"offset_factor":2},"web_analytics":{"enable":false,"follow_dnt":true,"baidu":null,"google":{"measurement_id":null},"tencent":{"sid":null,"cid":null},"woyaola":null,"cnzz":null,"leancloud":{"app_id":null,"app_key":null,"server_url":null,"path":"window.location.pathname","ignore_local":false}},"search_path":"/fx-blog/local-search.xml","include_content_in_search":true};

    if (CONFIG.web_analytics.follow_dnt) {
      var dntVal = navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack;
      Fluid.ctx.dnt = dntVal && (dntVal.startsWith('1') || dntVal.startsWith('yes') || dntVal.startsWith('on'));
    }
  </script>
  <script  src="/fx-blog/js/utils.js" ></script>
  <script  src="/fx-blog/js/color-schema.js" ></script>
  


  
<meta name="generator" content="Hexo 7.0.0-rc2"></head>


<body>
  

  <header>
    

<div class="header-inner" style="height: 70vh;">
  <nav id="navbar" class="navbar fixed-top  navbar-expand-lg navbar-dark scrolling-navbar">
  <div class="container">
    <a class="navbar-brand" href="/fx-blog/">
      <strong>枫溪的山谷</strong>
    </a>

    <button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse"
            data-target="#navbarSupportedContent"
            aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <div class="animated-icon"><span></span><span></span><span></span></div>
    </button>

    <!-- Collapsible content -->
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav ml-auto text-center">
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/fx-blog/">
                <i class="iconfont icon-home-fill"></i>
                <span>主页</span>
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/fx-blog/categories/%E5%BC%80%E5%8F%91/">
                <i class="iconfont icon-code"></i>
                <span>开发心得</span>
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/fx-blog/categories/%E6%8F%92%E4%BB%B6/">
                <i class="iconfont icon-th-large"></i>
                <span>插件</span>
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/fx-blog/archives/">
                <i class="iconfont icon-archive-fill"></i>
                <span>归档</span>
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/fx-blog/categories/">
                <i class="iconfont icon-category-fill"></i>
                <span>分类</span>
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" target="_blank" rel="noopener" href="http://maplefx.top:6520/fastsave">
                <i class="iconfont icon-plan"></i>
                <span>资源站</span>
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/fx-blog/about/">
                <i class="iconfont icon-user-fill"></i>
                <span>关于</span>
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/fx-blog/links/">
                <i class="iconfont icon-link-fill"></i>
                <span>友链</span>
              </a>
            </li>
          
        
        
          <li class="nav-item" id="search-btn">
            <a class="nav-link" target="_self" href="javascript:;" data-toggle="modal" data-target="#modalSearch" aria-label="Search">
              <i class="iconfont icon-search"></i>
            </a>
          </li>
          
        
        
          <li class="nav-item" id="color-toggle-btn">
            <a class="nav-link" target="_self" href="javascript:;" aria-label="Color Toggle">
              <i class="iconfont icon-dark" id="color-toggle-icon"></i>
            </a>
          </li>
        
      </ul>
    </div>
  </div>
</nav>

  

<div id="banner" class="banner" parallax=true
     style="background: url('https://s1.ax1x.com/2023/09/05/pPrb1ot.png') no-repeat center center; background-size: cover;">
  <div class="full-bg-img">
    <div class="mask flex-center" style="background-color: rgba(0, 0, 0, 0.3)">
      <div class="banner-text text-center fade-in-up">
        <div class="h2">
          
            <span id="subtitle" data-typed-text="RayDungeon - 流程式脚本控制地牢系统"></span>
          
        </div>

        
          
  <div class="mt-3">
    
    
      <span class="post-meta">
        <i class="iconfont icon-date-fill" aria-hidden="true"></i>
        <time datetime="2023-08-23 13:36" pubdate>
          2023年8月23日 下午
        </time>
      </span>
    
  </div>

  <div class="mt-1">
    
      <span class="post-meta mr-2">
        <i class="iconfont icon-chart"></i>
        
          38k 字
        
      </span>
    

    
      <span class="post-meta mr-2">
        <i class="iconfont icon-clock-fill"></i>
        
        
        
          319 分钟
        
      </span>
    

    
    
  </div>


        
      </div>

      
    </div>
  </div>
</div>

</div>

  </header>

  <main>
    
      

<div class="container-fluid nopadding-x">
  <div class="row nomargin-x">
    <div class="side-col d-none d-lg-block col-lg-2">
      

    </div>

    <div class="col-lg-8 nopadding-x-md">
      <div class="container nopadding-x-md" id="board-ctn">
        <div id="board">
          <article class="post-content mx-auto">
            <h1 id="seo-header">RayDungeon - 流程式脚本控制地牢系统</h1>
            
            
              
              <div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look.">
  <script id="hbeData" type="hbeData" data-hmacdigest="84b82305fca83831db515cb4cbe550d7feb865bbc7f597f7570621e1c4161550">1e53859e32290f9aff55ca1f5b4771fe1f49b7536e42daa7a2f066acce82cc0961753743e3d8666774ad5224ff20fbb780bee8c2334febcd096d49479442550614b1b6a1d9db84a47bd5b9a70a24f25ca355160104f1258ca52df50fc521d16fd6547f199761aa069b664de1928b6a0a9a7cfe3674d61f6315c969b6ae9f6bb5d5b047e180dcc5ce09c3ee5c037e82f517977ced07bd3ffe4f1ec49225dd9b8595a32e3a7a31360e7d8f05f1a759f87db519ee8013b6e3a5072ebeeec19b1dd264fe9881e97cc2f19d778aeef8b7918b53282e4652162a60c2f32e0c3bb1fe2be8ffe441cb0aa7116923027123cbd995c7240b6fdb9c412b8c8fc1dcd7c98bcc5135083aa3b371e2c6ab135ff88b23966ad86131df736f8e33584738e42fbd71d1956da22f69d3252a3ad8e4e22c507add121baebfe259164b093ea39181eed953a0f4197cf0d9f36808e8d96958dc2a16d2def9aaf3a0a032e9fb1724aa721a28f79683f385f714aaee5e078fc89e5ef36ed2c332b6b84226ea877090ad0163ce4b3fe592e74bf657fd0db986dee20d092926c9b8fcb87131678660f3c89520d0a5ac89d69b69d465a4da1839e817c454e1923b21c1fc2da46268b80a9616438a1a936096734c975b893f5c3cef58448e166e27dcde07e8d8ce58cfd00a24e407ddbb9998b18d2fe91a356d7f83d372cfb553fd973461f5d562c2c5ad56d43230ed4d48088e387bb0e9efee82333b2343d2cc6b98b9fb79d03832e9eeff202ac1a57c9cbf348dfabf651693219f3963d6cdbc471664af756ec76f99c24c26ea1e7617ee6236086a2f3212f76c747fce7c303817e20c5e8d135b1261da7b1c115eebe2365b3c8c6713bc880b343e95ce04285312b06611064113632858db5a672c0e1d83a6034f60220eb153b485dcd5715849223ecd92c18d5d0741904679d6f097d511bb962b43d0936173f6737d8d7663c3ff2e05ff42f6dbcdc63060dd8d70f76e88ee1d818f755e77c42b46483c6f2e976d7a2d819131daaa06ad778c89c4ae6422417f033ee1fb96194f98d304cebc83684786f69e0cfb6583c2e2c6a59abafd0dfc0f97df4f29ffbd29b647261e24c4ce41eafee8e881ddda3082aecf258dce9a8e83b1d006036e3d9639db9a67f999d85b6b0b7616fb885206a0c65ec68ef8964b349ab6e760fd277737b0b2d1e8093615a84b389c5eaa33f4d3640bc01cacee779bfd85a2a201cbfd4fe43e25734cf5f2253e53d4ba29c5fac9b37704d4e394f0bfeedaf66f88457a3d0d28a001121d58e91bfa307e000c72e66996b9152464261e822437576042698c4eed4b39a3e1fc9f1bdcb87f4129d09b4a96c368e88bd34dbe3b7d174ed3eb571d78cddff4bd907fb0a36907f587aa0042577149e46cd6c89d9f92bfb17c844d6108c5180b25bc0d481dda44eb38dfba1ca4bdbc293a61a43ed24666e89221d1ea45d48739ffe5fd49c4aa63902c140841e86ca722837851b3ad41b5d11b055e7b712b121cd2be10692d0818d3ad7d8a0196b72498f6f3cc1140d325f15c43958469c8341be8dbbf36581aa8fc8110a2d2d93dc0e52f4ae2189089349dc559033d32c302fb795c85535ddb7c4606e112428007c0cf95f74477c31afe7979c3c91fba7e6f4830ea954c675b6b3f617ee795edb572160dbd1b795e624507d930e831b24932ad2973076cba63658be26da88054baff2bcd124a6fe610e4bf0958ab2d3c1e0f59a0a000a3923e855561e793c8391a98f46aabeaf1b92515b81b22a6a867f7a58b6d88bfbd275a2e3118ddf12a13f42f697c4e9eeef85245835e81603b8a45500ea4a2725736686246c874001fdd77c0d862aff127688f830e65a4bf145cdc337f4c683ea13570499cc073c896ef10c7bb59beb0c87cd6ed051f35ed3ce420d055091f0977fcfc36e6ee9a4a31c4548f6a5e0705a99b5f9b39d6f9ccfaa6d67644a132cd99cbad15417537584daea005b60a45be9b22e9ebd3cca80437dc5201dc1c2aa04441f7b484e2c49bf9800c539035a46a09b1c2e186bca28b427c7fac820473aa6fcee01f68f64ae98c8a464e5c55f2e06a51f24748d7380fe0ec6c392712873684b68a488141c13d213dfa0c156634778b00275aeac993a23ff105d652ca39233b5033fd978889679c542ad8fa972aca69ce93fa0a90f4254b6534ba3d1382cd709257f4dc802bc1cd5c182ca5b2d8ca22ded44caf7d9e804705ddb62ffa4a75311ea55a115919b4c0603cf20dd59c8158aaa82c2d4980c090232ba3b399dbe60d31e5f06675904bd674dd1d0dd46f14bad28d25af14bcfa36892b6d98ca847834a683198d125a097ddbf801188cd723ec19bf13a5c1adf65df5793419d95117ffe03bc4cec6525d913bbc50707c85ef581162da94aa38f426a1e25c894f73ac8565cd120477fd29f488576d1a3101eb5c2b5b3d6993624f0e5016b4a0bcf48e427c24bf7fec91070696556fd69c1ae18658e53726b92dbf0330b29069c11b3904b14e78f4b25f62c1f68930051b1cebcff424bebcecd7864269bf886e26802f34a5497701411f8b1626e15147b2f31d96c5537e8c1e9e9307d31f76a656f18f6d3037b4521b02925a851d4834e8ba1aa73d184ce02e70d19698d6410a40b6213fff623c9e4144f18e6fce871e89f886d8106987c9f79de3889264539b01e9df56b5d9853a8d330d252077def98d255f126f24c22ad2cde3393ddb0523326f4ea11ecdc4ac82bcbba146464dca0f741e0291dbd7b64dfa5483ed311841523c865b407286abc04e9ed3cd7d9e2791dfb2679d9d64155cc6237c8e6b920552900b3ed5a89fb5010dea18e792a15adb8a1c16a956f20cc91a6e61a6d89fb8b811792ff286e99e271f55803c9caf12e019bfb10488e8f338136b24fa93344fe7c61d8de90b603289092955cd0b270f646f6d07d04adb0ca7ff1861b3c0406df3922195e44c4cd5a9a6551af2a0028283804452cb6e3c027ced1b132173b8319a8cfdef3a6045fd92cfcf8f30bf38709df1dbb4b2cf9a51ef204e1b27be66a55b830ea599b2ca42e530b167a17b082760bcafa7065a5603252b655976a2c1dc4544bbdcdec24d40b0ed85d6862aa0ad6f0f8300e232def23c9fac8c8867e2936d61a74c722742f9e76aa431a8831f4785ea30882ebcd010edccadb22422946d695975f0fec10073e17fbb285dd21969e31a7d02795dea68e5e5127f621c93f83436897a08c2b0f96ce3753edf6fbcd4c96ceda382b764f850c02c7c1814f547f3cbfaeb0051a90182fc19f9b46c7af17c183bea80c46dcc1b058f70b428d576913613a0aa194f8778fdb233366cca8fb6e611a94f594f836a348c3f47cede89a17e04012719dade30270bca10a5ff9139e173cde6a1805f4364c70283b8806685de72d41e9d3426495fc4d9a83c94a245a8a90ac029861b0362e450a46d4e95d492ade50113b1408daefcb7b95f6c2c9b8e20854fa174b2518e9c19b5a62426f4c6922166b80160c8e5a7599c2c961827edaac8ec0de4d8242a3b262a3a9b47d3563af39e7d5dfa17ab125d7886138bb2a6ab5085f7a7a7310eb07ee6440039707df0e9add5a984d3beb9c15a4f9e73b7e10a5a4aafaafd5bfefa8b31520ff1d99a0ea9d7ac5d3c8c2dca45297c278ed2e415e8101f322974dc41ba0e76d8384235853a9a5b01b0c713b7f818bf9472017a45547bd010b218fd05162b42847efff434fc91a19c1057e8ec2e7f06c0df4aebcf8c2b6699f3cc7f1e7991fad305fdcd3e5c6e0f72405d2ff9c78e293c00ebd3d37f3df9016ca796db73ad55ee856933c2e4674e0f462dc98b6bca4985da49fcb9417f4f0f427a441d7ad2064bd483d2ebf571e5c3b6c8744656de2e9df439371c9cf86d6f31c51075b8a6197e7cdcc5e9885957b508dad5b1efbe68394b5900b323a4a5c45957786fc25024e159b330c4d29075db7f9b0c6cfa4cb010fa0b6fab8ae8b5f5e8f68da1ca88277a701ec94b09603b72add37177edd08fd65c5cf68565fbb701dcda2478720919ddb7f58c4a0c8439bf7f563d90a54b096436d708c52460be0bf90392d274049161b31009314539c9fa8d9492fe57ec6768df760201aa2d1dfe81d141690f12e44f294b4b77d76e54434b16602e1f863274e5cd22ec3a88847c88fc40581d3c532ecfbf25a4501b4446232862ced75c9c70d5756ce9f482f90c02a74b8b475a8378a7338de5c9999a811d6af81800d0cfdd136059d5b27d141dce280b9b3da2d03c4498fe0469a494abb0a28ceedf60aeda0d45fed0d11ce780e8e7653c0ceeac3e58ba5966a0027242313e5501cbf7ffb33758182e10b6641132e24201b4bc7dbbf05390685f7498297177dee0687c924baf95aa93ae0f56f6bd3c2bdb86b70cdddec38639208c21ce88e471d38466f44dec73b5a25339631000d2f6d305bc667636bd41f291481c4f8ea543a57a2235c88a6a6ce80c24f51ca4006bf222a61af4259b820da8b6cbf6446d032ab13226ee67c0015011cfe9efbc37f0b78bad8769a920dcab9cf925ecb989631bb25171b43f6da62667f11b8e48adbbf494e1066190cb713f5480a948751bb3ef281e17d2ca5bdd41787e01a43b6cdf9e026f7b320b0e07614ea73db6bcd5257b110821ad2665e6d5e7a9b9815085576b6a67f14673b95ce92e244528d8ab441df13d0b7067d9fe9519973a82b0f022a6def7d83e96f07b34c4ac3c4654e0993a4b3a89e4145a1353fb24436143b1511737835659f91b99bd0351969bfd91b77a9d142405d9bb3448b92481d80e6360405726f3b519f253651de34f112af5356f243f08fcac2025ea55ce485fd5d5f1a03de9f25b290639c31ba2a935e649a558b47dbedd6486a5c0f8d7ae51073c1bed938c1115573c28ce9e7762b0f84da489bd85ec010b50ab3f4e574f2172c4c25d63f766f77331d6bf942921035b2eabfdf18f0b39c527c3d12f30a10e2a4189b5d05e7235065790b160443fab4584a3d5d5795154fcf7d59a6734aed5bd521656ea7933756aa3d1f57052e2ff67327031b9080c59a9feb78051cb0be97fb8082177797e5da6d99b72bb497b1b32a60ed2bd6be9e5d6c616ba9392d84d1b6066e77c039dc44ceaf43efd0f83f52551634ddc8c1780e358dd9d5d8525c9424a37b2cdb35ad53624ed7f1bd8c9b51c3291350b3420ed9a0d78e14c5d84c809c7da81cd6b13e8fcd25ec4d25fc3e14695ea072bee6438d50c7975a006d0435afe769897e290579f57c5708bf3dde8d0accbfbe41b18a51e84af9710bb1c205e94aa0983f0c50cd26bf8892c05c58143eb739a1265ce0897dfdc791a47099cf186a8888faddbc1ba5d8452e35e733683bb533c2d59b7b1e914cefcde6bcd0c6337efe2d669c7244b2b43261b1713e7d68eddbb650a2d334166eb59c3730b979ad9aee192dd17de9186266aff787b9809dcccff0299c769d57c55e0afbf6a03427c50e3abdd7422487f4be752dc1b3f932c89a78c09e6142080fbcefa82ee3bda12f93386eff9149b49f71dc33eab8ade5022c1d1857ffaea831a1a27e9e08de5c296fc190d47b6da116a8cf2093a51fa89b7c713deb4063414c2b01f460c8dbfde5a1ae7199598acdee95aa9e90a7e7799ea9f04d071b38033edb006ec73d6abaabfcc79ea28f06fc8e67f80a78cbdf38ba4f4dcfc14d2fcf2caae98c2dbea782a5963b1abc23599dd97814e4dd4decdbfe7c08f252b031fa96760c88c623c0f05f2373bb5e5cc10e466cc65be7ca82aca93bf6c15a9b12ec9444aa54ffa923dd175d57f9efaf0b8fe6500e357506b72542f66c5882062b2a07ead22fc101864eabc9f4665377cf5eff44af0228ea2329805f0c3d2894f8e6092c324be86532c990765de952666111bbd98cc427d860d3f113bce04f6e7a89983dd5cade7a1ec0b3958b3e86d41bccdec67a6a8e9e156c518031533e19b3085f495122ca9e38c66426127b55f4d9ffa04c49ca8fa7a1fcc465c9b0384fc059bee330edf3d736224d7a358fd0baeead4e738a0651ae6a521d8f289b8e12053cd000bcaa85ab5511158d5bde4b0a0199671b9c965519a5b6e0501c3a2cd346fd86e8e0f2ab60e948055c57a104a0cb4dd4872fd129aa9c667824cf98d2d1116c2fdbfd7dd2b11459d66621a4aa4389b63ef0187625e56181f00f998fae306433572e7887f341978e57886064b3262e63f63d02d2d00d5d3c22b609abf9520ae50e2dc072713037b9db3839f59b4a5b9ffff2e722d001351d435e8bf10032f25ab49688636f532bf1515fb475738e1c4f3c374e1e471e353ea516c2d104b6e221483f10f00703e4db0efbd491a18d3eb6c35f679b31578c9f3d723e120402f876faed3e24de94e9dd1f226b4a8c0274daf629148b61048fd3ed558b6455beb170293c013754db3f61950039b90fbf6cf28c48fb0eb3462bfbaff78aeb4d0943c1d7ffebdc5feec1a1bee79c9e580812bc99e8382852c866cb0dc750931c5ba78642bfd2cf8658febbc07510cb3a3e1d753d6f71c5c8d258463017ce27231eeacb72f30b5d455e11580c12220dbb0db1b64439edb6657509db96e5aeff6b1002dc2e849c9c2355fbb55d3dc88d6afe5c23f4576eb46305234233dfb9165bb42fda022614774368ab68d419d10346b6617e1c5fa009c9acc232809a4cc0b4e85e4a7ee5b8d1bd651527c0247eb50cae1f84c84bbf0d5ae82c6cec6f49b0faee92480b5c11269402583c43c2d64a9e097e5df926debf841134b189cd8e3bda3c9751f92596d566b05ee3ee6d04c02a9768e35a2b1f8fe9e71a373da101d60b96e1f1ba505c21a8ad4e3a1354235a547601372e1eb033edc2338bdffd79ba597398f9ed05e6b6d6fbc5d2dd6b2924b62a6a77d324b98c435e93ceca83e2da3c9364e2cf28695503bd80ea3d23c957b692a798a70fbb84c43ed257b1226e6e82c36137d34bb156b303af29cc312d2fad7031a2f2387a0a5e69fe323972ee73bfb6d77aec329490a369be470635f43d2068426d4642675589fdd4ae02e39bef1f45e32f8fa481973b73348d15e1afa75f95a691229b78e303060a73a8c35cb58850b5aef9ceff4f9b7015ce59df20756fa68d53ef35b7f5af532c60badb26c5700ba99b40685e850bec37e81b4dac317d0c218301439fa41273e86bf23c9c13186ff3b33997c588773e506ad980bffa2b81643db8619ecd56e100e728eeb0122dd3558aaa850d9f18177b80a3180b9a503d149cfaae617089a524c1db77f663c01bc6c29068af1764d2e59b359bdc84389ab06a31a5d4f103fca7af500100b98beb8574f3145dab82717eceb8dc7177ee0871dc02af66df1eb4fb105ae31e2df803a99154c1a99513e5668b2d67c51ec06f9135123a7b260e1e96167dd9835de668fa7569c0ebf72c69e88bee28ae4b8dfb8751acfbedd1ce8850ad6170b6f4726f5f06c4d5327da7ff7607a942ab4a69be5069dcbf94cb9afca34949189371baac6131958351c95c798bfe011f8d9340583adfe87da2500ea597856c0bb3914468877dede160c8594116df848814fc18012b1c2332386c4d84eb8b4b41298854a68a50d08c754369be2ab8a44f442642ec7b03bb3e53c0f273871a0d9c7165f8ab727b2dedb5698418c713e0717caf4a884ee1c4be19eb9884db0a71fc34c65b1a6a1f100c9dfd36fe07a230d80a5f78bd7f93039aa5aa2bd1b6c70bae2d256ec300c3324c35273d8760cad7ebb336f9f0b998cd5c48393e2ae78d046892e414c9b585a95774c649a4c8a79479fbf6d2e1dd0691a6598cde530980778b221a065d35b3e4222319fa2c585a041c7d32ced649fc834c86210a8f8a38a138d282e3dc17a4d07ca0c2a3e03d642f04878cc3aff62414ceb550a37f6848d1b2e3cd5dfdc70d0fabafad4c76be9a2f1d573504ed45bc64816cf5fc99cd8691e0f74ceed49dca5b1a0735608ae4ee9981ffee42d295aa5a8d89b3b981a7b2352b53b070fde8714915bf1e1cc75515b9f7599f47b0912cfb18436df61502465cf31be0eb95cc62ae83ff451b7b81e622542d7e0d08e4603b0ca856c3279588270f6f5f6712176b9b873d2df86ba1f9db160896c328b628a993741524c087a44761c7c7c0f2f4aa25c6cdf3e535ee2f22a304fed25fd52d2fadee6b16066280beae0f5f5852b3626ce620b38be0a4516d162181eeef727b835f16b7b5b1198ba5bd2e0aa5250fd786acfb1e9325855543e194f9723eef118222b494fc393e244084275c0674483b5774c81d53b792120f3222640a82d6ebb8bdb3ca7594ca41c394cf71fbf45995fb94e2ad3c42887562ab266eda679ae6c8ce790e1a3240a9b0b0a9d3725dab820f6df42dd9ff7211d1eff170f26b25eb0f1d3f2e59e859b78bdc9f2428d2b1941e6ef8b51f2867c26db094f1d1ea6470509bc98e3dce12ca11ca2b125504b7a5ce73fa41e0eb0831f2a25e2cafdd6882a6dc1313a54b5a4409853899ea6d8a34babc36877b85404d1939c4fa45a9a55a451556dc4cd5e0a7c91a4457ad2ca8bc9a38ea53c34f461d39c6129d3e5854bf54a8075578790894212c9f61544085c86f0c3ef8f46b97e12b7af54860943ab64b1eb5b36ed0c8927bceafa62ad74917aceb73d2dfd5dfd4b4581d7999657ea0baa5ff6b8b606096f32c2b987e7b656bed564d677d6372dcc6cc4233b585a110018077eaa0eefaff62cfd50a3965d2cde202768812680b95e5878206a7b1cd708495846cd3d9d1d4070c258294f052c82b5ceb89d2d4a406ecf331e1c37735d1bd8c8b439ece54999ef74c789caad5ad2c3f2988a07b7d2582bba0048aea54916fea98a26feae4229875d91896a0d852fbafece23f578a3aaed4bd7277ac8bba52f52eaf15661ea422f48b45d85e0f3a6dd034d4c41ba67a679a9c93a08b84f69bcd56ec9d8ab22b862db708b96a58cc6131ad6df1a1fbe56efcf9563c0ed0894ee9fcdb3b90693c11923479ac9f963f4e92822b0359f745364dcc068655745da1d4cc8bda46d9d4af10e6fb510323c08cfce994aa92813a55538229a50b6e0779ee3020c1963ead4b0ceef6132ae5b35a546e805276675d06fcafcd289b2383285d4d7f626ec18f7ef105c3c36c0ca9eb212f9d4aeb654ce644fbcb1b525d6ca995ce9924762fc2d3883f99c4b25f2b63d4c481a8b4f3492814e55630b837653579267c8d2222e1d2f8a34b5cc3cd27e1d3ddd2a9a23ab13a022a32f7868d818eddbe8afd4cbb12865141c80728edb6f99ec27afd03669be51fe1d23da0c91850aad519e50a6dd7f7e5f5ec0096179c447fef55f71fcaee3402cbca689234a08c541e5f836f82979be87f420c1495864250ac75d1d0cf89fc102be626d56b2283cb38d8534c2e4649ae0fe4f9f26b1a786cbc26a92acb3e96e5d92c02bdc4640d1b7cffd339cb0d7d4b40f2d9d9ee9b980d20f32ccd1247b464e873fb93b4c4e2a65e1644fe1431a9da7c963058b1068d5e49f166b84702b4af3ee7f594ac9ec949309425ea7ac35709daac7d0b009aaf48be61ba62a0f35aebb5066c1a7a92e78d399dc847b87a183ec042c799992121478b2378b18d93af55b36dff79b8fd362ec2c2f6654067f3ec2d863a8cb1f236bf1592727cb2666e8c4f50f37e9a5a49c08fb0e9720e129fda57cae116eb43d5218c710da181d454613d39cc575c21372beb0732e06b7cde167afbadfe5906c966d0f9f966bf2f32a81155923b0082be9282681aca07274632d64c7b956d4889d5a04afc7768c5ba916c8b98e1deefc5f0fa05b6f817d80ada407f7e2b565c2949bdd4f5d01beb223e2d8d551f5b0671873b5f08a4e4b8cd08ca3d9bb3d614eed3b4ff3f1a154077e652264bdb472a883fef82b05dbd8f43e55dd4b54dfb65db7f80f753e395e81c1b26bdddbe671c28d23910f2be6c90849fbb712062def4d9ebec0fc038af06e69fa5cb3eb0eeca3ddf292eb0a57585674230ad694e468624424d09369647b3ee5e777bd9303eb7c376cadac434fa9bf072448833367c29102c99c14bf6504ab8cfeda5457d4623c14ce20967e59f80f178fa048f9a4ac8592e3fda3803e50b23271fb8db9008f5174aa31ff294d912dbff76da995eb5a55d35b303fc37a13ddc71db898d170e1c2e3e01c1a26100563eba7e9511f09258cc19c73a2b4e2d07284e3b81fa221b3dfa3b3e790ce2ff5ea171a2b192cd347e3a92b7c03b3833a23b7eb2e578e4b786c2721e79d25b7b377506ca150f2d949c787ee4224adbf4ad8da0cea58cc7ce72d54a28510a162e0b4561dba24defa2c35808a8aaae09f98d8d0c740722d351c5ba3088763905cdb4e47a137500cc743ef49c4d55f021d95e10529db5d5aa1b50eaae176b8e380835cb2129fc3d723ccc65f7a48967f157bf3d1d740532c7dcc0eeaec87f6c5fa002f1bef121ba7bd78400c78174ffc66766824948e8efa375b64493f23c7adb1dcf43d97f9392bc7cdd3c5d14bb49b78e695ddd97dac9d7776cbc482d2f9516c3976d5d538fe0eccdac3c31a4b28b0aa2fa017b6428e314fb6a49e7aab4fc668547814b1c0e81390fd7ca330c886ac5c5b45b91a783fee3b2fafa778a669420e8aa4ff7b26f3c764bb9ac7f130e9d97b4ecdbe972cdc9d8b81c4d14b9b2d07eb312766eefadfbf953a685835d695aabff92845687a6ffb6d6709e33c22ff748ba198d86a8032f9e15c14bded927af58134537377394b1edbc538d2182672f30638c870c78dbf4ba968236debff9a944ff4ab319b600fce6ff285446a828af6c892511b3fa9253dd7d008841451490d21deb172dfa3d9262f5a8188db29cdea20e00cc18a70821bcb7d89352100d312bfd8bf21b99720c615a728d58e562d2e331611139f18ac6db0a5e9c1ee9425fb31e1b74eafadf965240e701c8d9140bdcd249c621aa1a8ac9cb9c473caf6ebe388d5bc9306bf8275507bd9cfdb5f60156a4ff727ecd18d0c0555e4f5fa6c242a998db8427559f66433aa246b4535e4f36b418c19ec92d9171a4914c835409475439515d8778f31ca2c6cadafeaf690d4ea64ed1a4c2849543e6117fb259ea2209368fdb14f7491587584788344d0fd95cb712f677898012eaf7756af782360314571b9e39cc97eebedc7854c6e5ed156f5f7471057f983e8297e661f2ee69d7845510185b2e0e314595634ea716af3cf2340925001d9266c48e2590ceecc2ca29f7e98d9114735e64e7bfec02770bef91f8bcacd466d748a868e44ea29dbe08f5cf7d87325533fabf948c7016d0e25282960c255c60aa45ef3aeeb6cdff0d42f242a13b23f88a031b254bd6abac2e074f496a7f83c604f62197199ee73a354b78ac62523e9a1476285fd6d0c3ad38a83ba2f615da4ba0a0ec1a2f9cd78f81ca0a1a082c0232a4621a19e2cd4f98090d72fe10572df34864a2ed396c53c6acd0db83066e492f86fa815cd4b37746b315ef26123da57532c5cadc405a1e167ac2ba9ef7d96fbcd8847d209c30503b5e3db380cea103c9aaec045f221f40bef59fcdb305e46cb004c1342f54457b95f70650356ecf2964f129370f8c4b7cda50ff8b3ea9fe0240c4dce445657aef4c05f31ce2e349bbac56ec2a62abf1c48363381f368472298dacfaf09797eb09d52f9ce90edfcf42a360550b6daf3f223d78a5b34d284450c7d98bcc6637ca546bf7d3ffa176379d1ce439e368bc9aab0aef66b6b2b34dfc5247ec8703dc4a91287e72ad2f856a3aca647d045beb79ee1bdf04c77aab2324171b0cd2b7114abe81caf2fb31b2110bdc775d0fc97fd3945c988bde2be7fb7c34104c55f6f6d041fa2c30eb7a5ec469954dfe2ddde44ac70d866f0f65c1f97aea591fbf042b613acd0166a6fb6795b805b32a723c479b4c82c77ae97ccdbd0a9353ef19ffef24e145f383f6928db3e11c2908300bed17a0641f1cab33ad456a56331b74c32b72562585d8e10ede6c2f9d429b3d12b66913833a1e6970b8f04dc63875330d5e132eda98e6c05e9f68bc2685e93dde34cfc8820e7fbef224a822996f0dc61f94d65b6804f434698aafddf98b8f6833bc3f40f4257699b012e1e17c0a59d6e3d23d7240b1b7818f8c7d207754172fa73fb4bfc402aee1a864d19081b49ebff502328dc6876257e257092f92b40e5a52fde2ad47c3ad7c00d78903cc7866663f74059802fea766bb3375804c79d982a0705ae18ab1181b1a2fae4cc87ad894b395018e81233195303b60015999eb1bdc1b51ea7d71361137a058cad44348279d89754f18de4e21b08f55744ad3a4967ccef276056988f078e3036d780e1ffafeeb2cd702e0a8db9eaef660a05c561d6d41a4e583d0383fadeb26bb70e8e68352455c286a6e0ddead6f653df63d4b116af9bb1555db7a17683a8d52307e430df8b5c4981ed5a3122b88ae5a9561c4bf23ae09f2d33d38ad944f0c9b77c7e990e081b715cd082ed2e5da553c6a9e59ea4f6e180380d5878895c6233a8d48b311543ae3698fb71a0535c854941e2dde9c0d59aebc66f6eca2d0f7eb7bfd725c7d0b8cd88b87d94f15ab894499f48bdc88185fe57ac47414485b4cc0d395a7059c799df44eb001f22a4cd0fba36da6fdc36e2cfee25bec1a8e69a5395fe0d11942072989399837a2c339bbc603d3303b0735024e12b5b4bf9b04730b59085c6f299b6f13e8fd2d8ba92effb2385ca7752b5263f554af3d7f183069206edd74138ebba8473cc00b3faa024347231a32404532065681a83f4ae985f6b6e5317e0cb3a10bfd42e9756dcb15cfa80bf9694ee1ff04cb2ea9b1f7f6beab6136a2dfc300c481d16cef7ca44d1d0b655eeaa45d9a058eb78344100a589f2361512402fcf22f3c87a490d87b14a7eba54c73606e17ac0badbbc5207822a2a7d04bf7984b27e8d7a527934a06a6976b68721a392aa650afabdc754f286e7c3e147bad1bdc50fe6c94af64264f72acd60e344ee836f5b86dd9c98d593c2c6a44b6f9ba093a2048d1e8d4e4609764011eb9f1dbdb667d461bb5b9d603682dfd28e8b59b27fa49861107ed5c807fc1d22135c3cdefac592a1c23b1395245d12505ec4d7902a9b303f7e0a33924be1c8b845e383011b379a319804eb1c51a62b5af7206850e9c6f0cffefd808fa5764634ab4fbaca074f6384d8f27f694db65863d506e3c208a0ee44732b66d8966b8c6a5bd23f519330eb1e7be2fe9cd51ede38650420103b74ef32a768cc66fa76ed037682a96683dd4170fd8c9e184f846c13842d9c41ad7accdf7c13575472e6b92f40119800e63a1afbd5a79718d5bcd3a122b4a6782b951fc0ad98455cdc06da48fd079302256c07c1572a7e730cf534509c3e2df51f247a9775da33c37c70e18b3afca72c1d46d9102e5aedf0d72650b64e00449b9b179d5e29c1ee2cab59f958b203e3fb3a2d832505b5886d3efe091b286499e08ce0e6817e1e4d0fc8f2c92272ad1973ff05c508e81d537fb5a8ef58ccdf0b752113fa4d9df5838288de8b6b9969703fb87ccee79aea40848aac2a13c555bcc7f414db41aac91d2d845cd1176512a8752f3805ee71bfde9d3de0007a070234d086cb4993bf486372caffd233fbc380124f6538f9a72ebb0b11fae9360dc2cf9c0bc1e4ea9625b897ad578f0f40455eb0de0b2013a89f3bccaca8f2a6f40bdd7197df20d9d1b7eb5692c39862fb354c4942bcb826c3b072ee2e6e40019e7e251cf02e1f7b63c6a0a53fddec72866aef359549bf68b6f8b2dc542a18733ad642f6042aa58479ead059911b54837d40ce7a54223e0bdf624098255a639c982275618101895a611f238ea2b88e0eca726a5cf4eee57a6004b3e88a7be77700f0998f2f6eb441208184250aa13df1e842c7b36977f815fcd6d9ac26267e35bf75f6e858e960d6bcbbfed199f7fc247018a7bdf3793c4b1bc7302a03babc24dc039a664c33e52c1d5e24f5f45b626a16c11eb3c2733f2403dbea67f88810616c1d6d824df1b3931429f73c6640a34eb6fc1155568d440fbdb1950330d2ca2273581a109149775c2b89c3445f22cc9cf4ecd4cf86ffcb13037b4d81a00ffaf36397c922644b3869f5c1fb19db16c09493d2deecc3d39d5baebde217bc299eceae4ee863d253e4aa8a5b9e538efeda9d33fa8f6bcb240bb6175554e2e94f8551e6bcf9874c70756b212d02bd64505787db40c76b98d294613d5e5bbf541348f1686ed2924209bbab8969504d0771d1a22958e123d82c152a6c303a5d8871395e91aa8f0cf4b8c4a284b1bfb886af5c017913a145e62cfacb54953a78b6d8c3787444873ffb33f9db97ce633283170b7d1330b4e9c9bb3db5531e8ea311de080e0ae1f666c820f0fbb0a163bcc10ecce60efb7f1d57acc17274023bbcd755e99430c911430107fd32559bc3c3695226d2d06b9f68c1e2edd6e6f0c79904cf228625677cad307c9280f1dc566a55fde4a31ff22183980cfa3c7c76932404a98e0da7aa0a96582873d6ef380081e033a7cf62639b60757149300b8c1a5e30668a1118f132824efae4044dfe59ce47a98c56baee6bb75b688a4be157b2d8e8b21dde93172d72cdc688c55e4449e5c2c0f5ff3170a96d11cf5aea93f6b38d90870dc4af2c0886b422787dcd4e19638c1f40ad656cf9d18566fcb37866a2b2cb7412570bdbd6d142117fa09ce15c681f816824f917062757b720699162c30a23f6f36041a7d90f12f63adf6adb385744e86bb20cad72310f7942f05836bda9bdb4be8222b28f5280ce601178312138b811497917d18481e1beb43c858b270efa98327b79f2a450b84806ee1c55f953fc61e74fc5cc7e15f548fb9ac0ed6aa4aebab4adc80f77f75d0a78fe5df91b7d851fa574dd491385d012779358472e9c7c0394e8ef0fe8818f3aa34ba4502f9b4eb45c0ff452d67df0c0f6d6697e691e46c65573297e7788b78400cc1b3e01f8af73a0e8c4c393ab028b82a24b1b7f5e518bdbe1aa38125f4b708c7a5dcd71825cda85df44d88838e61cc85b59db4924beb11a571e6827e5920968a6b77d93c0146949473e27f29609deecbeb7c91edc2015b4f10eadc849a3f89f1249bbd85770659eb1f1e684f171d9851294d9c8514c66d3f212f96e568b36487b81161748c45997e2370acc29ba8bb966098a843bc986344bf14f4b38b087c5e4fdd12e972e976700d067d49eb90f5e571ce9dc78056ef9c3000eff40bb7b5254a1bb8e380c590c137d38560514ece03911e597245149a6730e254837068be17e80a4c693b3e6260973d1d012bc5186a4783f22f3dcb5567aa9b96a6ee35753a639773612072bcd9a96afd12e38da16a1ba5ca67277ace8d516c9265dba233b6fdc219e843a8438a34081999d340cd3d7d2e60f043c761800befe986344cbef2e34f6943afbdf688d245d4c31ce20b00f78be6442c843e7f80e4bebec2d29f9839da92e20be4bd385d80b94056233fa3c9a33d69960e8db1fc724047e05f73d1fa209de14358dd416a82815159f7902bb56d82b1ba6406551f49121176b0cac21cfbef78a00ce6a4c87f765653f9c9730edccbb4c6201d04b8c92f605c1d4558bddde13159dbf0f977ce3ce9b081ed0facc9a49ad71ae46f6797e0cfe3159f852892d57f00a1477f8dde8e45beaaf3ca9712b620de019e510a857563cee4ae66f38b4440442b1200f39313bf12dae28ac6b00b50d3c26e4a25d233cd6d76e1bdc6c6ff9cf82e7b272cdb39e19b1fa0a9828e25a406b34ab421124b25e7cbb020f19e714ac1d94a1444c0b62d60ca39ebb69b279f977d194bd6b577a5347d3cbe9d137e6361231dd31ac86952460605709d1b3f4a4dbff7f5b7cb2033aacd3f9394a0b9983b3f5cc3dbdbeefe77bf7f3ded658ec3a40bffad75d740ff13effad8c246a7743368edeb8f3557959b9e574e39d3e6ccb1e459d795c4c7416544fd6f4e530d46ce68f6d7486b092d49106d225af4ca2ad0d0be439ef29ddc29078b2ea863bcd92ff6f6815a23d1a70d740c49dbe45d11f3005b32c7d3a18c2cd6e08d3acb0a4f7c737cf13241026db3a64bd478815825f5a0db06f7325fabf8ebb78c35428f4b303393e2a839c8f9e9acda5d2ac94771ac811be23735c2584e10ea43b5746dda08780a8cfdf99d6d30414b8872360d0a13e83ce588e79e047db46e49a4cc5091ac5f91c337a3e4e29e7d86172ca793335f16f169889bf9454af4c1b2a7276116f6c73b487390576eef6da48846412f50b2c26c8788eca28bb316bb64f5f0bb39f46ed30f8055fff51c885bb6639d61903a4c362a57975f5be24d2a6dcdbe366038b037c3a67215a4011dbf5ebb5d74003023533c97cfd67b13ef6c0e1497458494156894ba0bfac49c92f08f6db8d645b5d7a7ce18c7ca8200a4a4e44d1684a713295fce22a527cd0a366593dfbb3192abdc4864a0a5299c440712144f1c64945665331b66c0a6f7fa78940dd6f477f0d2319d0fa63ea683d57bf26cfa6e3465d5ae1330c74cee31e2013a05ec64f08a323b48803bc8d00117ab9d1c9f18f9347c697b78e6b265e73d4d85547315761477c90a66c77a3f89ab2d725e796c23a579063fa3b2a71e8615ad5b95c31d036dcc5c72ac644fc4a2ef823795ebba8ec995ccdb888f064f14eb75f4e42b420ef59052f621d49c3ad61607a1d88f892b6e002fcbafdd905fdd651117392056ac0b1d1fdfa3217aa4bd462ff130afb8ae482dec3edddfed2fa31147e4403cd4c60c820f6bcbdc47450f40f50d8fdaf682b97491e56051d2b6ea2796be1edfadfeba06c5503e9790690c1d8afff3d6a67333024b87557a0f5db0e25b6db0459e589d160369ab9ca41a4db0dfb6b8047d7393500bbc337698f843d66c901c6a8cc0e8a9f645873732cfb87f328094aca8f36746d988749ff7705d314c5e69ea615eb5e8e3d99ecc525ca8b624e2b0a0e7efd7cca9663ef28c438eb91cbb4bdf1520f7511cd4666e94bafa5bdecaff797564f208911e35af53cb76339c3f61407392ff6b94b7dc8d5c6013d6841e96967e9d74598a8981b5606343799210fd93106ed4d891255d577205d6b9558f0e0d4cea02f56da4f2df0b57c215aa8bd684c4e0f893fc7c72b5a73834591845aede6ece952cde7247aaf9f50dd98791c599a2d7dba04aede0a79ba9048a6ba878528667e5237bb8e73dc780c5dcd3fc5af11571ff6ff695535839078da1110735ef8f8b382e318a955c7a936a58761ef8ddad82a0fc58a3d580aa39b619707164567469bef5708f5f7e588b946b6c62edc3fb850c0ed98b9487a9ad17fb187c1441848d4e365fcf3d11c54b7e4658dd2f98bd41538c4ef4ec8aa09b06dbfac05bafc5e3623fb1979786af9ab26c7a67786c15675eb808d9266d3a49ac2925c49037d0934ef85b0ed29c82a6ce93a60f6e471fa4c2b515b8c89b46cf7ef7cc2b44b7af1da5d5f70613b7fe04fc97beb2e9bef2bfab4f41c85573cc9c8199a47293abb84a7d7872a1c67bdd61be116d763110141e4798817b4dd540597c6ba98100b5a7d98b865ce66f7a031c525575576bf6a75d5d32190b9b1c6c9fd1b2a2f530411d7189d84dc063a48ad00f9f20c4acc3e88bc38436dc7d3539d985f447d8eb3c39ca8753c3d8dbd4562198358ae12ad54012c3e18d2406a3c0062143c24d1639a30a7dff0c3220077c3abba43ad14b89f786b2aecf5538d7a19d4bbf577c1f1bca878260f628af8d298c5cbd5f65ad4e28678264f0d89b901a3bcff5f478bfccbf1589536238409176046631b2136da756dc34caceb338f7a08beeedd4451fa54b4a8755207cb7d0cbd9c35540cc7b460967763404eb7f0817958b9cc491014b19981530e3422eb443999274ed11b44b7167edb1100aa3878de51fd1674dd1ed189902477225065fd766cde62808b40ad437a7c8bd25c727c67a6945f06c1d0e8cf320eea67b2d187ccd0dc02591aa962881f7699996df9a03a103ff833c543f3d76dec63d27b43ddd617f3cf0726791fc9e79b0aeb2819afb5484c71c3bbd6dd3afb2558df9e24988f720be59db4165f4bbf2939c04d0e7c314c5870d98c711e6dc9159cdb171793c67a7400f45b9778914c15b15e578d766f68ff4ad0f8c5bc942d5ee6da58bf8b14cf71be3c478ae5cdf8f9fb4d784df76adaa763c6fce1ca9f44a2936e26326f0f5899fa0691dd064ce1e821ee54eefbc2714e88cd029a661d1a019000bc7d2385cacc0de2ea24ac1735074deef19b9573bc940d9dd4190c134c70f1b5d161e579dae68c0e166350d62abe3fb929c9bb5dc21c0b483d179c471c6e2d0fe80c2c2bc4ecf781161ebf875d1ca0296753fae4b836b904842a8377cd11365c28b1bcc7d6b8dd6a608aa03a76b66e51b941938ba901973b9b3cddf1bba2e94563000c301ee58e527948e6a4c615a7af28932185980609743f25343860d8a222371745f38b6c9f0328fc94d4392972f5067db3cd1b70e855dd9571ce60c348f388b0fd73ade6e8e5710a366801beac01c94891ded55e140c87a8afd50b31e3ebe54b16266d2f0b46e9fef4219c169102fd5cb5784c59394ac599edcde385525c23a04f3d6dd7ade8cd98689a273cc58eb3fff62c1f119ad45f08b2a7e975f808ee669efc9ead3b1553a8561342904517f54eec2cc6697bbd31874a81cd4d3da8e7441845a83338b03e8d26dcf76394ce50bf4947f63d26564cb4b693308f3cc9e6e8ac46b4d99b7d42f46f084dab42e8477d23833e9bb7eca572feee3dfa71e559c1a7fd227e982794d0e826fa279ef5dfdb9cfab1f8c2f796c9926112c28147a605d98ace9bac8f0310dac6f6ce610afe6072e8e03afe2f237a1657db1a840a87afb34a91a47c69557c76bcfdcfb259a105f2e517e2badc66faa5c4a3edc8303434ef5b490c338c26963bec0c3369e5f1b22c62f3a102afac2c8b594f901f08029466083aebd7e30d4a8977cbfceb563cf3a365c953c7115099fd19f072f64ddffb0782c181aada9b258e17d713662b67ee2575b51a33cf2d665dc04ab7a646fa96df2425a177532cc4d1cc82db54fd0a96399507f643770fc5b9a0f595ece947f3c47f46ef32472f39f362fb1feb5083c442d9e8868327b10542bb45d3b3dff3ffa4231d0e8656d39340520c4ad69a8c152bb37d78b8e9f754d74ecc113719b4f3f36f142b3f27810c9e9023147bff90828892e486623f2947eb4fbfd0c8d1f61bd83e2cf6a750e58bcbd0a25c95fbfb283c5f37a16da4e5bce7f8c6140b582097b8daf1469c85b385ef05ec0ce7343641e53819e9e8f7cbc6fb099784fe0032f6cffc6ca92e740bd88e04df8bb4d08a186a95d7596dfb045ac2e68525dd5450d0be8dd88bcfcbd6047fab461e00fff9664673f7116a74e732e3318d93099bd64764422ae31359e891e7bba086b50d96a329dd65d8a01f2fed32ed643c2bf63919c3bc753d98cb5f59824f7226a8cec8ef2a5f2359555a88bc1b44c12d40c76504c020295a0da85dabbefeebd27cc6a9ff97a1ca32a5d9bcc42aab822c3684e22d834100eb64b943b28649c722a091278e461f5e6288497fa34d66b51d1b2e128f310aac6f3c9a7f4d656b2766e6f77f48f40373ff1d22c84afbffe6d76dfe9a52f0ecd6e7ebd68982514c7c85cc1d504ac660fb0c858135f9a0d48e746827aa3651d0880d3ccde5cca9c244396a0f130b0897978ec9383fd7d838829f1ae5613e970fd9d45960d4e5ff791028e24ba18fe81e309d864e8eabe3be5e1eacfac4c740a44fdf1684163d12f26f7033e48b3edf593cd1a23fcc7e8730ab4694127046685669f382750283730d360bc7b56cf0317e1444bca4407677104a672524a73d5c26bfc3f923559c02ef6bec07738c29e49f6eac599162d08653ea3685cca100cc88496c89103177459a4411b53320daea858ff5eaf352c51e1eb65d460c77e018b58f79eaf5c4c1f5a184fa0c156e04f29ab0626b1901cd8231e5e869a94e171a3013a8689d97f89f831dec6f564e1741ea43e15036093a703fc0f406fd4745f1c4182522e14901b7c05ad845cfb0686e5a2d5b008726dcec1814ddee6a8a76fd4fe865aa25cf80e8293f21bf3c887cecb0d1a026e04aa4bb5ccf701412cc2de7f863ccce4b0d88f36de94fb05f8c059e41d968ec16a667dc5282c0367421634accf5c8c12446b1b8192ec64e9927954df35a3eb9c45b61681412a88a0021d7b7bd6ac453811819e7c181b762222f3b3d5970def365d02911c7b91da8c66367826e0c50a4474d4963a236e869514d515df1009cae7e4409b0a8c46bdcf1515011c7d1a227cd13aa277662039cb9011e0c37099d59c6b0b7908b7346cf592734a7e60493ab59e849b153b17bfb0fed84a819abe211f54a0c0ead4b2d4dfad3e4f45c4fd1cac6bdac27fdaf759aaa563121684d19f8527eaad3c3d0fdab2e105bab6b6138a82297492fd2f5804fa39e2a6f01e820ad09ea5cc4e96e014e1353562a9a5d1d15af925ac7dd53e004c0f8438adfef47bb77b3770026fdbb27b886074998610df6826230c0e7702ea65010319ab4075ade3d0506f94f825858bdcbfacb60aa72b467f353d63e64b9305da6e71cacb7ae40586350316b37d418e139423488a48d3029bf1a529075c4c24d2621e14f9106901b82a45d3376bc200fb9c219f165a9f4de204a17f8c26a5fb141e22cb6f0c80531dc4c6a6024a7e84595f707c93edc264ce3150c536562be490d3408e4b5ecf4be34cabe783c7b972130a571edeaf1d5f068baa96fc7dc7bd17390b63a636b648e32305e959f6ae13b4ae3fdee48b90e59a25898ee8f799dd871321384b5c0549378fa1bd18363d0e14ee4ada169771b7b8e1d1110ea3c547b642dcd197335b66ce4f0c129f0d255cce5a44667055a3c51779309eb44b626e255c70229d21eb248101b3b32788a1ec610f7407268d031005704da75afdeb777cb6829287ddd23fc8a0bb27b91a7ff58c915fad493e3f632f50c739b524b14ec4bef2b236a24479bfe534373a1c9a23c1d1f253b3929fab5ce40ffb30b7fe1f0d4dfeaf7bed8e4eb7818d1eff1b94685ef657141d8c448c5cf2100383d503d40d739fc1657405d485f09796b2c380f42e326981da2c9a274f020b91e0da8ea54958d8b651db8baed5c64611e4c0d21e213a3e0bddbdb05109def9166907e5b4fcd071e721b149a3d4135d17fb696c03e4d6970ae6eea67d91490d8cb1611555fc34da88c63aa23e64943abda83f06afb39561a3901386a75c1fd611f66b1767526ac8afe8c8140d2cc4614ac4dcde82524a9aa840da2788819ca4231b75aac56db67c5959c1dc5bb357fc9ab6eeb2525cf2a936242e6211a765154e053f25395bea1e71ef54635a6285a7cab12689e38d55d31c9299377ad1a69a217ea4f2db4177a168946e194453fc84e9b51ab6dabf7444303817e318e8d284a5d2c57bae95af609d354efbfd7d3955c901431fe23106049afb3251aaade78368ed49531175424f3b9cc6286d1ac0be9d15ef54fa77cc2c8a4f965041423605aa67f6b00faaac05f4a0ac1bf890bed603a9e25212fbf7fcfc403d9e5a50b87bf21f51b08aa350a24edab9fd18694fbb90ecb57b2c1df795327344837324fb9ebc3b4a43ab2365c4d7338e39e49d16b2b2945babd17b781ce5dfa54038b1267004271a029abbe131416529c258aeca512cb372959b3290c4155e2075fd3fefa2a5ff7409ec3d7df436fee26e4393f655ea21bd55fdbefc7ee13ec91fc6f9975fc5624a428012eed7161e059b202b838ccf241ec25e593775f17e1e9ee056f7ccbbb039f4a13fb5ba92d8f9a351868297df05cf8be3e94934c5f02c9bb9404c5a29d896c5450ab4101eaecde3979f317f526590b141b7095447445e387f184317330ca50179eb968609fb3c35f2d59e4eb76b5575c0adafc5150c6aff5dec930d2db357e0ae221ede4e6008ce16727459ea71cd0ab0580cc52d06cb80424916af9e39621c62a8483ec956600804d5499ed26cfb91f41c044fe8efc4f40f50cb70e313cf49c343865c1c5a877debd3414dc37fa6cf53eaf2eb56b0eb6f0eed9d7906abb94518b887f9553f59053f78e9673151161a299f436c6307c49db1a3fcb95077aa9a6d96f61a3fccd74f8cb7368d8dd5cd9ec5573baae75a223394693392d040116e1410fd9bb723a7213dd8ed0206ff50b8185b3db4bf588905139ea448fc775c3ae9e99d8ac8367303eaf8b18a29e412de8f9f6359ed5d89ac3281be8967a1be3110f0beb402aa03bbda40052528823ef8976b5113201d3bb6d573266c7e0139eb0b5e0f60db2f7901a1c2bcee6e91bc74aa7a27d3bb4cf7c99fc18ed768fda8b47bd3b8d064df745bca60bcff3eddf5c1d50d9f3ff39c0d9146266f95a9fc3c72c9e589ed0b05af5867eb03a5ba0b54f7b66bb181384cc03b44a2382b4696793e0987a8e63986934f35d9f2395999cb507f37dd475c7f96a89324c154e5650e39fec24132c23f4bc0a8997d01afe5c4e82f82a4055813d41d7dd91d8c7954705b10a4d095b022fb14d4cdb5d33d9fc864e4550ce1abb9382911e5f453571ec7be7aadaa944c6ded689cf8a99d6f50335222805be514ee36c7a06a7a76d1f0b8634714d4043316f4eb7400cba141da6be5265b54198a2be1db88c7b158e85ee0211cf435dc4fa69a7b20eaa4efd0d24eb2867a9dbe83f59eacae63b8f63278b9f2bc9399f93c9c272180c5fcbe6b680daa7ce83a2f27915cf4f4214b3ac62d594f82f7d1f1c17748f1c75058676d7a5ef1ccec0a09472d595e511c6f66e528288a19e01ee063f352fbbced52749cb8bbeab2a0d9eb264277151bc33041de98a89d0ffbe30f0eb83592f2a190f8ac32eb08c96cd159844471b1ed589360aff0d2754562365a522bf0adbf26ec0aad94393760f2910c045556b847f91047fb6204501f2f2599f42f26087233f7b209f718994524d0268aca6b54836d2c1686bc539cd77dcd6ac787e37f064e308e931c798114ed152d5b2210c32e8f102f590d1d46c5863b61ff331d3682a39dc0554e1d544776fe67305d85d4aa8d912d2e5804b44981c74662e4c138a001b04f0669b7b09f2fb645eb10cd5dc00dfbee499ae94733c9d868d87781a50b3e96931dc6419c359a3ed1fda2008549ed4bb16a86bff547492354f0b55481593764745ce9264251df17257e2cf3135ed7cdc894e04c2bd23b25fc8798898876fbb79daa759802ea270fac6283afd410e4900ac4629ecded3d98cd9787f36c74803b589e75376d78a7310d276bda133b85247b5ec68192ad78959e2efc6ed1bf0be3e72af00d21c007ee6aa13c14abed58d1e43138bd76b2ea70652ab73618da91df7f4b4ad2f08a627710bbc88aab8af50fea725b592c4cc1e797685127f955c87bb36f25d18f4923e682eb6623a9eb209f3228ad8f6329074974cd535a3bd736683a282aca008391e518781a2f219d9488913aaf132fd5d4787518c4b7c5898b1dd3e0ce15e5cd7ba304c1914e8ceea6dde06f37d4ec9bbeba0e2d96922c820b6ae4740d0b0ebaaec4c775552cd5c9e3ddff7f3faf858acd669901128b194b5d9a905e5a7dae830757d40b89404e956481c765971b9ae5f3ce0c681275d4ffa37eb1e2bdb37f5ca3ce24fd139decf8c3d1415485f4758eb4fb828b7bf225ea27d8efa3e7d3290617bf9d7e484a4de1e8942bc3c9e37a068bb098516bd17a8b180a907b8b19fc65e952e6000328d401989b036cdd02c871bfd6ad67a56078112c4431761c861d4990922cae29a7e37d34c5e9922dce53e271aa8fca45938706a4c173a00f70eb222b3da57d6502d8af2d16ae89089cec1a14ece90566eddbffb7314de70385658b9bbe44ef2cec822780570edf2039b17dc9d2d73c0136537d9a5ee0c480a87d524dca9ccf8a2d91ea8e32b7174c3965def9fa7ced941aa7f6130da7cacc336d13b58fd5bec5cee9b05f47e86291dbf2aa42efd76ea86860f5b1823d9abdfb2989b71e8a3c98c3a39d67f9aeb5d7654677007f5e6c008e11426cb6dddc3eb8407b94c9d48e7ae7b980ce951a1023144b6be5f62d4ed1aeb1152aabd8f1c2fd36c702b66623d3a4bb0aa640981f804d6b48fcbd48d9034e31039327a94792d73eb57acd2ac2e13138234f54bae18199db8311753121a0239ea55f12bc2a901e23898bd3169551b2d32b47465eaebb27e1459be1566574a7ff44608b162a23cfb7de88c406a51418dead04f96d07170c71a50772a903f860bfd409c426055446d2434b9b2e44401496b7d8eade11677f1f1ea523ce07f65e612562eb1903a1afa3dc0998be3811aeecf185408e1dc8d2a4aff80a29b96b116ee606dfa5ef2af092f20eaf3cb268c23bad2c9f166d7fe08cab695d0072265821898f780d20006e252af519c234fe173747528e2b308eb84892094be6b274a424291acb97f5f1b70da98387fb7b99965fc1b73d4b5ee85714f3e20fb27bfb41d1ca95fe7f0769cd95df22d12086f0cdbfdf422fe459826f26005c7f50e8d71a2b32a8b45071600598e348d6268aa92ecf0cf1024578a0300f888c3269bad06fd2ab120d3f3580be935ed46dfaa00b8c4561aef02b80118c8b9d34a17a1654afcf472c1d45b9960b222c38e207835536128f8350ca83b422e38bd3a76e9bd32c9e340d97325395d7b8d81bae49223bd817925b0fdcf4265fde03bd2c5b98c559b3a11f01c627e4affa8b622c017537626d559dc60b2736e0b4eb7536d632730ac5ef8fadc414658c619a5463a3bc571402c97684f5e47c48faa29c6e71a60e84b08bd2ba1a8a52c8baaf68f795386e3106f48ef90ca23138f510df68bbdc572080202aef10473cee5128709e75ffe1b249f9f1d05c4c51e08bf282ad2b996ce688317e438c9ec4911eed8c6c6a38024d1192789a8e9de873462775a09022f2f35716e6eada135dc9d1bf03f1f53205f6314df5e75504ea5edd663a3854147392c0846e467a36efd5cadbe4680aff96289ca070c2140a2f787ad1c551882f559c6eabe1e1c6036e9904c80fc25c806d7ed8b07dc2c5b7e49b5d89b1c0d62866cabd18c61c71e9a12bbf0ee76ecb03335aabdb56984fe48b8a78c5bbf38ea157d7930fb739e3e6081d29a7aea5c617b23e88ce35e526e52fccf86e0a8d14cccc46a73d2bfd8acc648924be6c1c315f6d7bb5b5177143498b203575203d4f76acfdc64a5389a1cd4f5eff88f0fbfc367433342edf6aea8ff2b4f01892fb810e92eec80f084a01f18934f42d09e0ce4a9cd7d55657e5e0d32dacbe76d00638b67df1594f8a1b23b2f6ee70e7792e494ae2d32c8c58ebb65cbaf983367fa700bf4d0e76732eaf0dfab7ba0eac12a1461dc34cef400c573858f7581be0ccb34f77d93e791808c3f8db62f89e0966a9358fd5fc7f2a22ce03f8e48f80de41278c57422ad91dd7a387e6d851e3741e8c2dd1e5f7f910736d44d19c2998450668eea78ee4eb3ec3b693d33faf1f625fa6521ff7b75b0bf0ad099cb2ba5718a289990ded866b704d15b6889208282ee421c54d3ad92ad7fe718c61cb5b71de94efc555f10f3a898840732e5c0058f166be001037ee3a949261ddaf2699731f2cc981f024ab2b62cd164b64c35082e5a845e1d0d5d6e96e7712493979da05054851d79fc7f41626001e6215d3ec4701a64c2a8bd84fc576d7dc5f0433356eb3e6b0c29b030255ce87c72e4130bcc16c7387d30e19a1b4dd8cb27d430e3890dd63c55d1fad6bd45e05805c00a8be0cb2464206e2997806b53bf9e2d451969f4856e83e6df3b0400ede4fa74d6e63810192bb2e96f27989dae8ffdc78533351264c85f8b17a0482f29b5d0bf5e9b94e60a7195a8492b6961201e47a397474c8266f1aed9c38bb5370c75206ffb93b6a2f206c8adccb24da7549504d067c053b9312e5086eaaa93a7fd612bc470cc206a47a037dcfa4b9621ca4f3fe0d3d6ba87a96a54f840bbb9720329b8f2784d9e547102ff151efc6f87183a854dc42fa99cc69d6a07fdb87bf616c71f37c6f59c6c8bd4e37418496f4edcb4bf2cb2063c90caeb71f0ec5f204a5d05b22ddb12043e8e8017ccad58f5f85fb36610748b61b075ceaa6507c72dba1fc8b097769c5b9f52e3202b1f37b3cb3542835d21bb2334f6c6fdd36f60b57957cf95967f5958103288e85e1b961c09e7553e629321516e6842f9fa7a6d25ae6d9de71516c86bc7427fe03df957fa46d8df1b58725a06c5ae5bfbc3099de566f9b6a441fd000a801e450e4925c1ffa807ad72d6c71257ef11a03ebe8ea37eab4eddd42f20e51c2254ad5b247877a8a7696ed6a364eaac41983a54ec1e38a5edd5a8f4dd53bd62fd611809ba8ca3d8bf6820530fd40f1c72a56d8c38203932a5a96daaa4f0b92c53b6e63aa867ebc940764d7fbb264a03aaec62053b520080b8afdd923514d1afa306785d85a46d2da3a24b72f209a68e4e85d2009308ceab47692d04efa1a5575ba5b917e64c5b2fcb71fc29bc284911a6e1aead5e1bde79bb86088524071ea723ade2a9fc79fd40334b23ee2e165c244e32965364eaab5e1f016140e82c3d6eb199433abe678136b014920f0c61c68ca3e803f0984e2595331cb2c7b0b8b4744b5de3d543e294b3102db85586c84f4bf133d57a325b89c62333cb019524fc42906f9033660547232d2b0de6d0b2a0ef687e8fbe3578cfe64686ecf5578f266efacd3508d061db5d2a13fc62edab2d8c286c107a8478af75f9e07e94692ca6864d7ccd6af0439751e66298752ef64f5f567718792c87c0e013a4fc9acf5a7f7f6ad38459f9b6628f2feaad9729a8f9aaf6853fea42f794a024cdda529348a3ecd5aba2dcac95d1d89862f2ef26406972501a9d5574ec324db252a2336af7dd95bb12b75da90df0cdd90d9a5fc92d3bef8e9182a79daccc8a8fc8e25723faf9481a31b670ad1268c5173a6954eb4018cbbad560979ea36c3baf09cdb63af015cf45efb4d1625a2d6d40b707b9393d868b68956bb45cba5292d01b7c41b7ab820b4fc10c7998c1cfae43</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-default">
      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-default">口令</span>
      </label>
    </div>
  </div>
</div>
<script data-pjax src="/fx-blog/lib/hbe.js"></script><link href="/fx-blog/css/hbe.style.css" rel="stylesheet" type="text/css">
              

              
            
            <hr/>
            <div>
              <div class="post-metas my-3">
  
    <div class="post-meta mr-3 d-flex align-items-center">
      <i class="iconfont icon-category"></i>
      

<span class="category-chains">
  
  
    
      <span class="category-chain">
        
  <a href="/fx-blog/categories/%E6%8F%92%E4%BB%B6/" class="category-chain-item">插件</a>
  
  
    <span>></span>
    
  <a href="/fx-blog/categories/%E6%8F%92%E4%BB%B6/%E5%AE%9A%E5%88%B6/" class="category-chain-item">定制</a>
  
  

  

      </span>
    
  
</span>

    </div>
  
  
    <div class="post-meta">
      <i class="iconfont icon-tags"></i>
      
        <a href="/fx-blog/tags/%E5%8A%A0%E5%AF%86/" class="print-no-link">#加密</a>
      
        <a href="/fx-blog/tags/Diss8c%E8%B1%86/" class="print-no-link">#Diss8c豆</a>
      
    </div>
  
</div>


              
  

  <div class="license-box my-3">
    <div class="license-title">
      <div>RayDungeon - 流程式脚本控制地牢系统</div>
      <div>https://ray_hughes.gitee.io/fx-blog/2023/08/24/RayDungeon/</div>
    </div>
    <div class="license-meta">
      
        <div class="license-meta-item">
          <div>作者</div>
          <div>Ray_Hughes</div>
        </div>
      
      
        <div class="license-meta-item license-meta-date">
          <div>发布于</div>
          <div>2023年8月23日</div>
        </div>
      
      
      
        <div class="license-meta-item">
          <div>许可协议</div>
          <div>
            
              
              
                <a class="print-no-link" target="_blank" href="https://creativecommons.org/licenses/by/4.0/">
                  <span class="hint--top hint--rounded" aria-label="BY - 署名">
                    <i class="iconfont icon-by"></i>
                  </span>
                </a>
              
            
          </div>
        </div>
      
    </div>
    <div class="license-icon iconfont"></div>
  </div>



              
                <div class="post-prevnext my-3">
                  <article class="post-prev col-6">
                    
                    
                      <a href="/fx-blog/2023/08/24/Shop/" title="Shop - 快捷操作的商店系统">
                        <i class="iconfont icon-arrowleft"></i>
                        <span class="hidden-mobile">Shop - 快捷操作的商店系统</span>
                        <span class="visible-mobile">上一篇</span>
                      </a>
                    
                  </article>
                  <article class="post-next col-6">
                    
                    
                      <a href="/fx-blog/2023/08/24/ProSkillAPI/" title="ProSkillAPI - 一个对ProSkillAPI的fork">
                        <span class="hidden-mobile">ProSkillAPI - 一个对ProSkillAPI的fork</span>
                        <span class="visible-mobile">下一篇</span>
                        <i class="iconfont icon-arrowright"></i>
                      </a>
                    
                  </article>
                </div>
              
            </div>

            
  
  
    <article id="comments" lazyload>
      
  <div id="twikoo"></div>
  <script type="text/javascript">
    Fluid.utils.loadComments('#comments', function() {
      Fluid.utils.createScript('https://lib.baomitu.com/twikoo/1.6.8/twikoo.all.min.js', function() {
        var options = Object.assign(
          {"envId":"https://twikoo.bingzi.online","region":"ap-shanghai","path":"window.location.pathname"},
          {
            el: '#twikoo',
            path: 'window.location.pathname',
            onCommentLoaded: function() {
              Fluid.utils.listenDOMLoaded(function() {
                var imgSelector = '#twikoo .tk-content img:not(.tk-owo-emotion)';
                Fluid.plugins.imageCaption(imgSelector);
                Fluid.plugins.fancyBox(imgSelector);
              });
            }
          }
        )
        twikoo.init(options)
      });
    });
  </script>
  <noscript>Please enable JavaScript to view the comments</noscript>


    </article>
  


          </article>
        </div>
      </div>
    </div>

    <div class="side-col d-none d-lg-block col-lg-2">
      
  <aside class="sidebar" style="margin-left: -1rem">
    <div id="toc">
  <p class="toc-header">
    <i class="iconfont icon-list"></i>
    <span>目录</span>
  </p>
  <div class="toc-body" id="toc-body"></div>
</div>



  </aside>


    </div>
  </div>
</div>





  



  



  



  



  







    

    
      <a id="scroll-top-button" aria-label="TOP" href="#" role="button">
        <i class="iconfont icon-arrowup" aria-hidden="true"></i>
      </a>
    

    
      <div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel"
     aria-hidden="true">
  <div class="modal-dialog modal-dialog-scrollable modal-lg" role="document">
    <div class="modal-content">
      <div class="modal-header text-center">
        <h4 class="modal-title w-100 font-weight-bold">搜索</h4>
        <button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body mx-3">
        <div class="md-form mb-5">
          <input type="text" id="local-search-input" class="form-control validate">
          <label data-error="x" data-success="v" for="local-search-input">关键词</label>
        </div>
        <div class="list-group" id="local-search-result"></div>
      </div>
    </div>
  </div>
</div>

    

    
  </main>

  <footer>
    <div class="footer-inner">
  
    <div class="footer-content">
       <a href="https://hexo.io" target="_blank" rel="nofollow noopener"><span>Hexo</span></a> <i class="iconfont icon-love"></i> <a href="https://github.com/fluid-dev/hexo-theme-fluid" target="_blank" rel="nofollow noopener"><span>Fluid</span></a> 
    </div>
  
  
  
  
</div>

  </footer>

  <!-- Scripts -->
  
  <script  src="https://lib.baomitu.com/nprogress/0.2.0/nprogress.min.js" ></script>
  <link  rel="stylesheet" href="https://lib.baomitu.com/nprogress/0.2.0/nprogress.min.css" />

  <script>
    NProgress.configure({"showSpinner":false,"trickleSpeed":100})
    NProgress.start()
    window.addEventListener('load', function() {
      NProgress.done();
    })
  </script>


<script  src="https://lib.baomitu.com/jquery/3.6.4/jquery.min.js" ></script>
<script  src="https://lib.baomitu.com/twitter-bootstrap/4.6.1/js/bootstrap.min.js" ></script>
<script  src="/fx-blog/js/events.js" ></script>
<script  src="/fx-blog/js/plugins.js" ></script>


  <script  src="https://lib.baomitu.com/typed.js/2.0.12/typed.min.js" ></script>
  <script>
    (function (window, document) {
      var typing = Fluid.plugins.typing;
      var subtitle = document.getElementById('subtitle');
      if (!subtitle || !typing) {
        return;
      }
      var text = subtitle.getAttribute('data-typed-text');
      
        typing(text);
      
    })(window, document);
  </script>




  
    <script  src="/fx-blog/js/img-lazyload.js" ></script>
  




  
  <script defer>
    if (document.getElementById('hbePass') || document.querySelector('hbe-prefix')) {
      Fluid.utils.waitElementLoaded('hbe-prefix', function() {
        var hbePrefix = document.querySelector('hbe-prefix');
        hbePrefix.parentElement.classList.add('markdown-body');
        Fluid.utils.retry(function() {
          if (Fluid.boot && Fluid.boot.refresh) {
            Fluid.boot.refresh();
            return true;
          }
        }, 100, 10);
      })
    }
  </script>


  
<script>
  Fluid.utils.createScript('https://lib.baomitu.com/tocbot/4.20.1/tocbot.min.js', function() {
    var toc = jQuery('#toc');
    if (toc.length === 0 || !window.tocbot) { return; }
    var boardCtn = jQuery('#board-ctn');
    var boardTop = boardCtn.offset().top;

    window.tocbot.init(Object.assign({
      tocSelector     : '#toc-body',
      contentSelector : '.markdown-body',
      linkClass       : 'tocbot-link',
      activeLinkClass : 'tocbot-active-link',
      listClass       : 'tocbot-list',
      isCollapsedClass: 'tocbot-is-collapsed',
      collapsibleClass: 'tocbot-is-collapsible',
      scrollSmooth    : true,
      includeTitleTags: true,
      headingsOffset  : -boardTop,
    }, CONFIG.toc));
    if (toc.find('.toc-list-item').length > 0) {
      toc.css('visibility', 'visible');
    }

    Fluid.events.registerRefreshCallback(function() {
      if ('tocbot' in window) {
        tocbot.refresh();
        var toc = jQuery('#toc');
        if (toc.length === 0 || !tocbot) {
          return;
        }
        if (toc.find('.toc-list-item').length > 0) {
          toc.css('visibility', 'visible');
        }
      }
    });
  });
</script>


  <script src=https://lib.baomitu.com/clipboard.js/2.0.11/clipboard.min.js></script>

  <script>Fluid.plugins.codeWidget();</script>


  
<script>
  Fluid.utils.createScript('https://lib.baomitu.com/anchor-js/4.3.1/anchor.min.js', function() {
    window.anchors.options = {
      placement: CONFIG.anchorjs.placement,
      visible  : CONFIG.anchorjs.visible
    };
    if (CONFIG.anchorjs.icon) {
      window.anchors.options.icon = CONFIG.anchorjs.icon;
    }
    var el = (CONFIG.anchorjs.element || 'h1,h2,h3,h4,h5,h6').split(',');
    var res = [];
    for (var item of el) {
      res.push('.markdown-body > ' + item.trim());
    }
    if (CONFIG.anchorjs.placement === 'left') {
      window.anchors.options.class = 'anchorjs-link-left';
    }
    window.anchors.add(res.join(', '));

    Fluid.events.registerRefreshCallback(function() {
      if ('anchors' in window) {
        anchors.removeAll();
        var el = (CONFIG.anchorjs.element || 'h1,h2,h3,h4,h5,h6').split(',');
        var res = [];
        for (var item of el) {
          res.push('.markdown-body > ' + item.trim());
        }
        if (CONFIG.anchorjs.placement === 'left') {
          anchors.options.class = 'anchorjs-link-left';
        }
        anchors.add(res.join(', '));
      }
    });
  });
</script>


  
<script>
  Fluid.utils.createScript('https://lib.baomitu.com/fancybox/3.5.7/jquery.fancybox.min.js', function() {
    Fluid.plugins.fancyBox();
  });
</script>


  <script>Fluid.plugins.imageCaption();</script>

  <script  src="/fx-blog/js/local-search.js" ></script>





<!-- 主题的启动项，将它保持在最底部 -->
<!-- the boot of the theme, keep it at the bottom -->
<script  src="/fx-blog/js/boot.js" ></script>


  

  <noscript>
    <div class="noscript-warning">博客在允许 JavaScript 运行的环境下浏览效果更佳</div>
  </noscript>
</body>
</html>
